﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Projektarbete
{
    class Door : Tile
    {
        public bool isClosed;

        /// <summary>
        /// Creates a new door
        /// </summary>
        /// <param name="isClosed">Should the door be closed from the beginning?</param>
        public Door(bool isClosed)
            : base(isClosed ? (ushort)21 : (ushort)20, isClosed)
        {
            this.isClosed = isClosed;
        }

        public override TileData GetData()
        {
            return new TileData(isClosed);
        }

        public override void SetData(TileData data)
        {
            isClosed = data.boolean;
            blocksVision = data.boolean;

            UpdateDraw();
        }

        public override bool Interact()
        {
            if (isClosed)
            {
                this.textureID = 20;
            }
            else
            {
                this.textureID = 21;
            }

            /*NET-TODO: Skicka det. Du kan göra det genom att använda GetData och Map.changeTile();
             * skicka den här tilens data genom:
             * 
             * Tile facingTile = Player1.GetFacingTile();
             * bool toSend = facingTile.GetData().boolean;
             * Point position = positionen av facingTile (Du kan använda Player1.GetFacingDirecion för det. Kolla MainScreen.cs->DropItem())
             * 
             * skicka toSend och position
             * 
             * ta emot i andra änden och använd Map.ChangeTile(new Door(toSend), position);
             * 
             * Borde funka
             */
            
            isClosed = !isClosed;
            blocksVision = !blocksVision;
            UpdateDraw();

            return true;
        }
    }
}
